package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    final String TAG = "lcx";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e(TAG, "onCreate");
        initNfc();
    }

    void initNfc() {
        NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this);
        Button openNfc = (Button)findViewById(R.id.open);
        openNfc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "click OPEN", Toast.LENGTH_SHORT).show();
                Log.i(TAG, "onClick:  click open " + adapter.isEnabled());
            }
        });

        Button closeNfc = (Button)findViewById(R.id.close);
        closeNfc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i(TAG, "onClick:  click close");
                Toast.makeText(MainActivity.this, "click close", Toast.LENGTH_SHORT).show();
            }
        });

        if (null == adapter) {
            Log.e(TAG, "initNfc: no nfc !!!!!!!!!!!!");

            Toast.makeText(this, "不支持NFC功能", Toast.LENGTH_SHORT).show();
        } else if (!adapter.isEnabled()) {
            Log.e(TAG, "initNfc: startActivity");
            Intent intent = new Intent(Settings.ACTION_NFC_SETTINGS);
            // 根据包名打开对应的设置界面
            startActivity(intent);

        }
        //我项目中是拿了NFC卡的tag中的id数据，这根据具体情况来；
        // 可以在NfcAdapter源码中查看，具体能拿到哪些数据
//        String id = bytesToHex(tag.getId());

        //TODO 目前我这边项目中，拿到数据后，通过EventBus分发到对应的activity，当然也能使用其他分发响应方式，

        //关闭动画，毕竟对用户来说，刷卡应当是一个无感知的过程
//        overridePendingTransition(0, 0);
        Log.e(TAG, "finish");
 //       finish();
    }

}